home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_09_08 / 9n08078b < prev    next >
Text File  |  1991-01-13  |  573b  |  20 lines

  1.  
  2.         void *xalloc(size_t size)
  3.         {   void *p;
  4.             assert(size);
  5.             BEGIN_TRY { /* get some RAM */
  6.                 if (!(p = malloc(size))) {
  7.                     assert(errno == ENOMEM);
  8.                     FAIL(X_ERRNO);
  9.                 }
  10.             } FAIL_TRY { /* no RAM, so cram */
  11.                 if (X_Error == X_ERRNO)
  12.                     if (errno == ENOMEM)
  13.                         if (CompactMem(size))
  14.                             RETRY;
  15.             } END_TRY;
  16.             assert(p);
  17.             return p;
  18.         }
  19.  
  20.